import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import numpy as np

# ===========================================================
#                       字体/风格设置
# ===========================================================
custom_font = FontProperties(fname="./Microsoft_YaHei.ttc")

#print(plt.style.available)                  # 查看支持的主题
#plt.style.use("seaborn-v0_8")               # 设置主题
plt.grid("on", color="lightgray", lw=0.25)   # 网格开关
plt.rcParams['axes.unicode_minus'] = False   # 正常显示负号

# ===========================================================
#                         画布设置
# ===========================================================
#plt.figure(figsize=(10, 6.18), dpi=10)

# ===========================================================
#                       xy轴标题设置
# ===========================================================
plt.xlabel("这是x", fontproperties=custom_font)
plt.ylabel("这是y", fontproperties=custom_font)
plt.title("这是title", fontproperties=custom_font, fontsize=18)
#plt.yticks(fontsize=10)
#plt.xticks(fontsize=10)
plt.xlim(xmin=-10, xmax=10)                  # x轴范围
plt.ylim(ymin=-3, ymax=3)                    
plt.locator_params('x', nbins=20)            # x轴刻度
plt.locator_params('y', nbins=20)           

#plt.gca().spines['top'].set_visible(False)
#plt.gca().spines['right'].set_visible(False)
#plt.gca().spines['bottom'].set_visible(False)
#plt.gca().spines['left'].set_visible(False) 

# ===========================================================
#                         数据绘制
# linestyle: 
#     '-', '--', '-.', ':', ''
# ===========================================================
x = np.arange(-10, 10, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = 0.1*(x - 5)**2

plt.plot(
    x,
    y1,
    color="#8ECFC9",
    linestyle="-",
    label="retinanet",
)


plt.plot(
    x,
    y2,
    color="#FFBE7A",
    linestyle="-.",
    label="faster-rcnn",
)


plt.plot(
    x,
    y3,
    color="#FA7F6F",
    linestyle="--",
    label="ssd",
)

plt.legend()                                 # 显示各label图例

# ===========================================================
#                         其它
# ===========================================================
plt.text(3, 0.5, '添加文字：y = sin(x)', fontproperties=custom_font)
plt.text(3.14, 0.75, r'$ \alpha \beta \pi $', size=25, fontproperties=custom_font)

# ===========================================================
#                         显示
# ===========================================================
plt.show()